// 基本数据类型  静态类型校验
let a:number=1;
let b:string='hello';
let c:boolean=true;
let d:null=null;
let e:undefined=undefined;
console.log(a,b,c,d,e);

// 引用数据类型 
let obj:Object=1;
let obj1:Object;
obj1={name:'zhangsan',age:12};
console.log(obj,obj1,'对象');

let arr:(string | number | object | Function)[]=['1',2,3,4,{},function(){}]
// 泛型
let arr1:Array<string>=['4','5','6'];
console.log(arr,arr1,'数组');

let foo:Function=()=>{
	console.log('我被调用了');
};
foo();


// 元组 
// 声明一个数组得时候知道数组数量和数组元素类型
let arr2:[number,string,boolean]=[1,'hello',true];
console.log(arr2);

// 枚举类型 
// 默认枚举
enum Season{
	spring,
	summer,
	autumn,
	winter
};
// console.log(Season,Season.summer,Season[1]);

// 字符串枚举
enum Gender{
	male='男',
	female='女'
}
console.log(Gender,Gender.female);

// any 任意数据类型
let aa:any=1;
console.log(aa);

// void 表示没有类型 函数不需要返回值 可以给函数设置void
// 抽象方法 没有方法体得方法 
// function sum():void{
// 	console.log('我被调用了');
// }
// sum()
// 设置函数参数可选 ? 表示可有可无
function sum(b:string,a?:number){
	console.log(a,b);
}
sum('1',2);

let str1 = 'Hello TS';
const str2='Hello TS';






